feat(serve): show the engine's metrics and log in a full-screen view - #177
Merged
Conversation
outofcoffee
force-pushed
the
single-serve-ui
branch
from
September 7, 2026 00:20
f1ffaf3 to
a5ae8e0
Compare
outofcoffee
force-pushed
the
single-serve-ui
branch
from
September 7, 2026 08:13
d40204d to
3b13976
Compare
outofcoffee
enabled auto-merge (squash)
September 7, 2026 08:14
outofcoffee
disabled auto-merge
September 7, 2026 08:14
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
spinloop serveon a terminal opens a full-screen view of the engine: its metrics above, its log below — piped runs are unchanged.Summary
serveon a terminal opens a full-screen view: the engine's metrics (state and uptime, what is served, CPU, RAM and GPU as a gauge with its history beneath, and the token counters) above a tailed, followed log, with the view's keys in the footerfpauses and resumes the follow without losing a line; scrolled away from the tail the window stays put while new lines accrue behind itqor Ctrl+C) stops the engine through the supervisor, and serve exits with the engine's exit status — an engine that fails on its own takes serve down with it--dry-runnever opens the view--api, the control API's log endpoint serves the captured engine log rather than reporting the log missingdocs/commands/serve.mddocuments the view, its keys, and the terminal/non-terminal splitImplementation details
runServeopens the view only when!dryRun && stdoutIsTerminal(); the engine's metrics endpoint is switched on for any supervised run so the view has its readings, and the printed command is the one that runsserve --apishare one supervised-foreground construction (startSupervisedForeground): the engine under the daemon's supervisor, its output captured todaemon/engine.log, the control API beside it when asked.runServeForegroundAPIandrunServeVieware thin wrappers over it